como obter o timestamp correta com o parâmetro is_dst em PHP?
Pergunta
Estamos criando um timestamp unix com o método mktime dando seguintes atributos:
print_r(mktime(0,0,0,3,1,2009));
print_r(mktime(null,null,null,3,1,2009) / 60 / 60 / 24) . "days");`
isso cria um resultado de
1235862000
14303.958333333 days
este deve ser 14304 dias. O problema neste caso é a hora de inverno. Você pode usar o parâmetro is_dst, e quando usamos 0 (padrão -1) isso às vezes funciona dando corretamente 14304 dias como resultado.
Mas às vezes isso dá seguinte problema:
padrões rígidos: mktime () [function.mktime]: A is_dst parâmetro é obsoleto
Eu não tenho idéia o que isso significa eo que posso fazer sobre isso. Qualquer idéia de alguém? porque a hora de inverno é causando terrível dor de cabeça ....
Solução
Use gmmktime .
Outras dicas
date("I", time());
Vamos dar-lhe 1 se suas horário de verão e 0 se não for.
A partir da página Manual do PHP:
"Cada chamada para uma função de data / hora irá gerar um se o fuso horário não é válido, e / ou uma mensagem E_STRICT se estiver usando as configurações do sistema ou a variável de ambiente TZ Veja também date_default_timezone_set () "
que provavelmente significa que você deve usar date_default_timezone_set () anteriormente e pular o is_dst parâmetro